#include <stdio.h>
#include <iostream>
#include<string>
#include<string.h>
#include<algorithm>
#include<math.h>

using namespace std;
const int maxn = 100010;   //字符串长度最大值
int nex[maxn], ex[maxn]; //ex数组即为extend数组
char s1[maxn], s2[maxn];

//预处理计算next数组

void GETNEXT(char *str)
{
    int i = 0, j, po, len = strlen(str);
    nex[0] = len;//初始化next[0]
    while (str[i] == str[i + 1] && i + 1 < len)//计算next[1]
        i++;
    nex[1] = i;
    po = 1;//初始化po的位置
    for (i = 2; i < len; i++)
    {
        if (nex[i - po] + i < nex[po] + po)//第一种情况，可以直接得到next[i]的值
            nex[i] = nex[i - po];
        else//第二种情况，要继续匹配才能得到next[i]的值
        {
            j = nex[po] + po - i;
            if (j < 0)j = 0;//如果i>po+next[po],则要从头开始匹配
            while (i + j < len&&str[j] == str[j + i])//计算next[i]
                j++;
            nex[i] = j;
            po = i;//更新po的位置
        }
    }
}

//计算extend数组
void EXKMP(char *s1, char *s2)
{
    int i = 0, j, po, len = strlen(s1), l2 = strlen(s2);
    GETNEXT(s2);//计算子串的next数组
    while (s1[i] == s2[i] && i < l2&&i < len)//计算ex[0]
        i++;
    ex[0] = i;
    po = 0;//初始化po的位置
    for (i = 1; i < len; i++)
    {
        if (nex[i - po] + i < ex[po] + po)//第一种情况，直接可以得到ex[i]的值
            ex[i] = nex[i - po];
        else//第二种情况，要继续匹配才能得到ex[i]的值
        {
            j = ex[po] + po - i;
            if (j < 0)j = 0;//如果i>ex[po]+po则要从头开始匹配
            while (i + j < len&&j < l2&&s1[j + i] == s2[j])//计算ex[i]
                j++;
            ex[i] = j;
            po = i;//更新po的位置
        }
    }
}
int main()
{
    while (scanf("%s%s", s1, s2)!=EOF)
    {
        EXKMP(s2, s1);
        int len = strlen(s2);
        int ans= 0;
        for (int i = 0; i < len; i++)
        {
            if (ex[i] + i == len)//ex[i]代表s2[i...len-1]和s1 最长的公共前缀的长度
            {
                ans = max(ex[i],ans);
            }
        }
        if (ans)
        {
            for(int i=0;i<ans;i++)printf("%c",s1[i]);
            printf(" %d\n", ans);
        }
        else
            printf("0\n");
    }
    return 0;
}
